/*
 * @Description: 流程用户任务 - 模型
 * @Author: DHL
 * @Date: 2022-08-19 15:43:19
 * @LastEditors: DHL
 * @LastEditTime: 2023-11-17 11:09:42
 */

/**
 * 用户任务
 */
export interface FlowUserTaskModel {
  /** 用户任务id */
  id: string

  /** 用户任务名称 */
  name: string

  /** 用户任务类别 */
  type: string

  /** 审批规则 */
  approvalRules: FlowApprovalRulesModel

  /** 审批用户集合 */
  assigneeList: Array<any>

  /** 是否制单任务 */
  documentMaking: boolean

  /** 流程实例ID */
  processInstanceId: string

  /** 流程部署ID */
  deploymentId: string
}

/**
 * 审批规则
 */
export interface FlowApprovalRulesModel {
  /** 审批类型 */
  category: string

  /** 分配规则 */
  assignedRules: FlowAssignedRulesModel

  /** 多人审批时采用的审批方式 */
  multiInstanceRules: FlowMultiInstanceRulesModel

  /** 审批超时限制规则 */
  timeLimitRules: FlowTimeLimitRulesModel
}

/**
 * 分配规则
 */
export interface FlowAssignedRulesModel {
  /** 审批人类型 */
  type: string

  /** 发起人自选方式 */
  optionalWay: string

  /** 审批用户集合 */
  assigneeList: Array<any>

  /** 岗位主键 */
  postId: string

  /** 是否勾选同时不超过发起人向上的层级 */
  levelChecked: string

  /** 同时不超过发起人向上的层级 */
  level: string
}

/**
 * 多人审批时采用的审批规则
 */
export interface FlowMultiInstanceRulesModel {
  /** 多人审批时采用的审批方式 */
  approvalWay: string
}

/**
 * 审批超时限制规则
 */
export interface FlowTimeLimitRulesModel {
  /** 超时时间限制 - 时间单位 M分钟、H小时、D天 */
  timeoutUnit: string

  /** 超时时间限制 - 时间值 */
  timeoutValue: number

  /** 超时后的处理规则 - PASS 自动通过、REFUSE 自动驳回、NOTIFY 发送通知进行提醒 */
  handlerType: string

  /** 超时后的处理规则 - 是否只提醒一次 */
  handlerNotifyOnce: string

  /** 超时后的处理规则 - 重复提醒，几小时提醒一次 */
  handlerNotifyHour: number
}
